package org.graduation.recruitment.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.graduation.recruitment.entity.pojo.Job;

import java.util.List;

/**
 * 提供关于职位信息的服务接口
 */
public interface JobService extends IService<Job> {

    /**
     * 分页查询职位信息
     *
     * @param pageNum  页码
     * @param pageSize 每页显示的数量
     * @return 返回职位信息的分页对象
     */
    Page<Job> selectJobPage(Integer pageNum, Integer pageSize);

    /**
     * 保存一个新的职位信息
     *
     * @param job 要保存的职位对象
     * @return 返回一个布尔值，表示保存是否成功
     */
    boolean saveJob(Job job);

    /**
     * 根据企业ID列出该企业的所有职位
     *
     * @param enterpriseId 企业的ID
     * @return 返回该企业的所有职位列表
     */
    List<Job> listByEnterpriseId(Long enterpriseId);

    /**
     * 根据职位ID删除职位信息
     *
     * @param id 职位的ID
     * @return 返回一个布尔值，表示删除是否成功
     */
    boolean delete(Long id);

    /**
     * 获取所有职位的数量
     *
     * @return 返回职位的总数量
     */
    Long getCount();
}

